package com.example.foo.ftt.dao;

import org.apache.commons.lang3.StringUtils;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.core.PageResult;
import com.example.core.Pageable;
import com.example.foo.ftt.model.FttUserProfit;
import com.example.foo.ftt.query.FttUserProfitQuery;

@org.apache.ibatis.annotations.Mapper
public interface FttUserProfitDao extends com.example.core.dao.BaseDao<FttUserProfit, Long> {

	public default PageResult<FttUserProfit> findFttUserProfits(FttUserProfitQuery fttUserProfitQuery, Pageable pageable) {
		QueryWrapper<FttUserProfit> queryWrapper = createQueryWithBaseIf(fttUserProfitQuery);
		//
		if (fttUserProfitQuery.getFttLevel() != null) {
			queryWrapper.eq("ftt_level", fttUserProfitQuery.getFttLevel());
		}
		if (fttUserProfitQuery.getPeriodDay() != null) {
			queryWrapper.eq("period_day", fttUserProfitQuery.getPeriodDay());
		}
		if (fttUserProfitQuery.getPeriodDayFrom() != null) {
			queryWrapper.ge("period_day", fttUserProfitQuery.getPeriodDayFrom());
		}
		if (fttUserProfitQuery.getPeriodDayTo() != null) {
			queryWrapper.le("period_day", fttUserProfitQuery.getPeriodDayTo());
		}
		if (fttUserProfitQuery.getUserId() != null) {
			queryWrapper.eq("user_id", fttUserProfitQuery.getUserId());
		}
		if (StringUtils.isNotEmpty(fttUserProfitQuery.getCellphone())) {
			queryWrapper.like("cellphone", fttUserProfitQuery.getCellphone());
		}
		return findPages(queryWrapper, pageable);
	}

}
